﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SyncList.Business.ValueObject
{


    /// <summary>
    /// Liste 
    /// </summary>
    public class FileFusionCollection : List<FileFusion>
    {


        /// <summary>
        /// Trouver un fichier par son Hash 
        /// </summary>
        /// <param name="hash">Hash SHA-1 à trouver</param>
        /// <returns></returns>
        public FileFusion FindFile(string hash)
        {
            FileFusion file = this.FirstOrDefault(f => f.Hash.Equals(hash));
            return (file);
        }



        /// <summary>
        /// Renvoie la liste de tous les fichiers qu'un utilisateur est le seul à avoir
        /// </summary>
        /// <param name="userName"></param>
        /// <returns></returns>
        public FileFusion[] ExtractExclusiveFiles(string userName)
        {
            IEnumerable<FileFusion> source = this.Where(f => f.Users.Contains(userName) && f.Users.Count == 1);
            return (source.ToArray());
        }


    }
}
